1. Technical Field
The present invention relates in general to the field of data processing systems and in particular to the field of multiple user systems. Still more particularly, the present invention relates to the field of enabling multiple users to simultaneously use a single user application.
2. Description of the Related Art
The need to communicate as a group when the participants are not in the same room is becoming increasingly common. Past solutions include the use of faxes, teleconferencing and video conferencing. However, there have been few solutions for groups wanting to interact through a computer application. The participants can travel and meet in a single physical location, but the expense is often prohibitive. The participants could use a file sharing arrangement, but they would only be able to see their own session, not what the other participants are doing. Another approach is to allow everyone to see a view of one person's screen, but allow only the person with the application to interact with the application. Rewriting existing software to function in a multiuser mode is rarely a feasible solution.
The use of a conference has been proposed, and allows all participants to see the same working session. The use of this type of system allows pre-existing applications written for a single-user environment to be used from within the framework of a multi-user conference. A conferencing enabling module is located between the application and the users, and controls access to the application. These types of systems allow pre-existing applications to be used in a conference without the need for modifying the application. With this approach the problems which arise relate to handling input from multiple users.
The pre-existing applications are written with the assumption that they will be used by a single user. This assumption can cause some problems in a conferencing system because it leads to other assumptions. If there is only one user then the hardware of that user is not likely to change, the application is receiving only one stream of input, and the user wants communication from the application. These assumptions do not always hold true in a conferencing environment. The users in the conference may have different hardware, input may be sent from several workstations, and some users may be working on other applications, either in the conference or locally, and do not want communication from the application. The conferencing enabler must be able to handle outputs from and inputs to the applications and workstations so the application being conferenced is protected by giving the application the appearance of a single user environment.
U.S. Pat. No. 5,195,086, issued to AT&T Bell Laboratories, discloses a communication conferencing application which controls multiple concurrent calls sharing applications. This is effectuated by pseudo servers which control the flow of events from the servers to the application and necessary X resource identifier translation. This implementation only allows one party to input at a time. The method for controlling the flow of events for the X resource identifier translation is mentioned but not disclosed.
A system has also been disclosed by R. Wiss in the X Windows/MOTIF User Interface Server document. In this disclosure a system and method are described for the dynamic sharing of user interfaces which are coupled to applications, and a window management system provides concurrent event handling for multiple applications. This system and method controls the events from user interfaces of multiple applications.
U.S. Pat. No. 5,293,619, entitled "Method and Apparatus for Collaborative Use of Application Program", has a similar approach to the current invention. It discloses a single system, between an application and multiple X servers, which passes output requests from the application to the servers and passes events from the servers to the application.
One problem with the approach of the '619 patent is that, by passing requests to all servers, users cannot use applications other than the currently conferenced application. An example of the problem is when the conferenced application issues a request to freeze the keyboard while it is doing some type of activity. If this request is sent to all users, their keyboards will be frozen until the conferenced application has issued the unfreeze keyboard request, thereby inhibiting a user from doing any activity outside the conferenced application, such as checking E-mail.
Another problem with system described in the '619 patent is that by passing all events from the servers to the application, the program can get confused unless the users coordinate themselves well. An example of this problem occurs when two engineers are working on a CAD drawing of a widget and one engineer wants to move a part of the widget while the other engineer wants to delete the same part of the widget. Unless the two engineers coordinate their activities over the phone, the command to delete the part could be entered before the other engineer attempts to move the part and the program would try to move a nonexistent part. Unless there is sufficient error handling already in the application, the application could crash.
The usefulness of the '619 patent is also limited because it assumes the minimum common hardware for the servers. If all servers but one had a mouse, the conferencing system wouldn't be able to recognize mouse capabilities. If the user without the mouse just wanted to observe and not input, the conference is still limited. This limits the capabilities of the system. This limitation could be even more of a problem if the hardware capabilities are mutually exclusive. The requirement that the workstations and applications be predetermined before invoking the conference, and can't be changed during the conference, limits the usefulness of the system of the '619 patent. If during the conference it is determined that different users or applications are either necessary or unnecessary, the conference must be closed and restarted with the new configuration.
Therefore, it will be apparent that a need exists for an improved method and system whereby a standardized system allows a single application to be distributed to multiple users in a conference to use concurrently without modification to the application.